{"version":3,"sources":["webpack://mobiusforms/webpack/bootstrap","webpack://mobiusforms/./src/ts/add-ins/uiActions.ts","webpack://mobiusforms/./src/ts/main.ts","webpack://mobiusforms/./src/ts/collect-fields/manual.ts","webpack://mobiusforms/./src/ts/collect-fields/auto.ts","webpack://mobiusforms/./src/ts/add-ins/recaptcha.ts","webpack://mobiusforms/./src/ts/bootstrap-autocomplete/main.ts","webpack://mobiusforms/./src/ts/bootstrap-autocomplete/resolvers.ts","webpack://mobiusforms/./src/ts/bootstrap-autocomplete/dropdownV4.ts"],"names":["enumerable","get","getter","value","key","bind","module","Object","prototype","hasOwnProperty","call","object","property","showOneAlert","wrapper","showId","find","hide","show","disableInputs","state","toggleClass","prop","attachFieldValidateOnBlur","$","this","data","smkValidate","UiActions","moduleId","helperFunc","collectFieldsManual","CollectFieldsManual","collectFieldsAutomatic","CollectFieldsAutomatic","recaptcha","Recaptcha","alreadyInit","attr","moduleWrapper","initialize","on","each","i","item","wrap","evt","send","length","val","document","getElementById","addEventListener","event","filteredInput","target","replace","indexOf","e","fileName","files","name","text","AutoComplete","bootstrapVersion","resolverSettings","url","requestThrottling","noResultsText","events","searchPost","resultFromServer","Default","map","PLZ","Ort","btn","currentTarget","sxc","$2sxc","label","trackingEvent","CustomEvent","detail","category","action","dispatchEvent","recap","check","mailchimp","hasClass","collect","then","ws","redirectUrl","MailChimp","webApi","post","success","console","log","window","location","href","msg","error","App","Subject","Message","SenderName","SenderMail","Files","promises","not","field","element","propName","toLowerCase","Deferred","FileReader","push","Encoded","result","Name","Field","resolve","readAsDataURL","promise","is","checkValue","add","when","apply","c","recapId","clsRecap","init","isNaN","id","grecaptcha","render","getResponse","options","_selectedItem","_defaultValue","_defaultText","_isSelectElement","_settings","resolver","minLength","valueKey","formatResult","defaultFormatResult","autoSelect","preventEnter","typed","searchPre","search","select","focus","_el","_$el","manageInlineDataAttributes","extend","getSettings","convertSelectToText","s","undefined","getBootstrapVersion","versionArray","fn","button","Constructor","VERSION","split","parseInt","hidField","_selectHiddenField","insertAfter","searchField","addClass","requiredAttribute","NAME","replaceWith","bindDefaultEventListeners","AjaxResolver","_dd","DropdownV4","which","isItemFocused","selectFocusItem","trigger","preventDefault","focusNextItem","focusPreviousItem","newValue","handlerTyped","isMouseOver","isDdMouseOver","isShown","setTimeout","itemSelectedDefaultHandler","_searchText","handlerPreSearch","handlerDoSearch","results","postSearchCallback","handlerStartShow","updateItems","itemFormatted","toString","manageAPI","APICmd","params","optionsOrAPI","optionalParams","pluginClass","jQuery","getDefaults","getResults","limit","start","end","q","cbk","BaseResolver","method","queryKey","extraData","timeout","jqXHR","abort","requestTID","clearTimeout","ajax","done","fail","err","always","formatItemCbk","initialized","shown","items","ddMouseover","formatItem","getElPos","position","height","offsetHeight","pos","css","top","outerHeight","left","width","outerWidth","itemSelectedLaunchEvent","haveResults","closest","removeClass","mouseover","checkInitialized","reversed","currElem","nextElem","prev","next","last","first","searchText","refreshItemList","showMatchedText","qry","startIndex","endIndex","slice","empty","liList","forEach","itemText","itemHtml","html","disabledItem","disabled","li","append"],"mappings":"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","file":"app-bundle.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","// rename to UiActions\r\nexport class UiActions {\r\n showOneAlert(wrapper: JQuery, showId: string) {\r\n wrapper.find('.alert').hide();\r\n if (showId !== '') {\r\n wrapper.find('#' + showId).show();\r\n }\r\n }\r\n\r\n disableInputs(wrapper: JQuery, state: boolean) {\r\n wrapper.toggleClass('disable', state)\r\n wrapper.find(':input').prop('disabled', state);\r\n }\r\n\r\n attachFieldValidateOnBlur() {\r\n // skif if validation is already enabled\r\n if ($(this).data('alreadyRun')) return;\r\n\r\n // not yet enabled, let's enable and remember...\r\n ($(this) as any).smkValidate();\r\n $(this).data('alreadyRun', true);\r\n }\r\n}","declare let $2sxc: any;\r\n\r\nimport { UiActions } from './add-ins/uiActions';\r\nimport { CollectFieldsManual } from './collect-fields/manual';\r\nimport { CollectFieldsAutomatic } from './collect-fields/auto';\r\nimport { Recaptcha } from './add-ins/recaptcha';\r\nimport { AutoComplete } from './bootstrap-autocomplete/main';\r\n\r\nexport class App {\r\n helperFunc = new UiActions();\r\n collectFieldsManual = new CollectFieldsManual();\r\n collectFieldsAutomatic = new CollectFieldsAutomatic();\r\n recaptcha = new Recaptcha();\r\n moduleWrapper: JQuery;\r\n alreadyInit = false;\r\n\r\n constructor(\r\n moduleId: number,\r\n ) {\r\n // disable validate on the global asp.net form, to not interfere with the contact-form\r\n $('form').attr('novalidate', '');\r\n this.moduleWrapper = $(`.DnnModule-${moduleId}`);\r\n }\r\n\r\n public initialize() {\r\n const wrapper = this.moduleWrapper;\r\n // attach validation to enable as soon as we blur \r\n wrapper.on('blur', ':input', this.helperFunc.attachFieldValidateOnBlur);\r\n\r\n wrapper.each((i, item) => {\r\n // prevent dupl execution\r\n if (this.alreadyInit)\r\n return;\r\n\r\n const wrap = $(item);\r\n wrap.find('#sendFormWithApi').on('click', (evt: JQueryEventObject) => this.send(evt)); // handle click event\r\n if ($('.hi-landingpage').length > 0) {\r\n wrap.find('.form-input-branch-id').val($('.hi-landingpage').data('branchId'));\r\n }\r\n\r\n this.alreadyInit = true;\r\n });\r\n\r\n document.getElementById('SenderPhone').addEventListener('input', function (event) {\r\n var phoneInput = (event.target as HTMLInputElement).value;\r\n var filteredInput = phoneInput.replace(/[^0-9+]/g, ''); // Entfernt alle Zeichen außer Ziffern und +\r\n \r\n // Verhindert, dass mehr als ein '+' Zeichen eingegeben wird und dass das '+' nicht an erster Stelle steht\r\n if (filteredInput.indexOf('+') > 0) {\r\n filteredInput = filteredInput.replace(/\\+/g, '');\r\n } else if (filteredInput.indexOf('+') > 1) {\r\n filteredInput = '+' + filteredInput.replace(/\\+/g, '');\r\n }\r\n \r\n (event.target as HTMLInputElement).value = filteredInput;\r\n }); \r\n\r\n wrapper.find('.custom-file-input').on('change', function (e) {\r\n var fileName = (e.target as HTMLInputElement).files[0].name;\r\n wrapper.find('.custom-file-label').text(fileName);\r\n });\r\n\r\n // autocomplete for zip/city\r\n wrapper.find('#SenderZipCity,#SenderLocation').each((i, item) => {\r\n new AutoComplete(item, {\r\n bootstrapVersion: '4',\r\n resolverSettings: {\r\n url: '/api/2sxc/app/Mobius Forms 4/query/Localities',\r\n requestThrottling: 100\r\n },\r\n noResultsText: '',\r\n events: {\r\n searchPost: (resultFromServer: any) => \r\n resultFromServer.Default.map((item: any) => ({ value: item.PLZ, text: item.PLZ + ' ' + item.Ort, name: item.Ort }))\r\n }\r\n })\r\n }).on('autocomplete.select', function (evt, item) {\r\n wrapper.find('#SenderZip').val(item.value);\r\n wrapper.find('#SenderCity').val(item.name);\r\n });\r\n }\r\n\r\n public send(event: JQueryEventObject) {\r\n const btn = event.currentTarget;\r\n const sxc = $2sxc(btn);\r\n const wrapper = this.moduleWrapper;\r\n const label = wrapper.find('#sendFormWithApi').text();\r\n\r\n // clear all alerts\r\n this.helperFunc.showOneAlert(wrapper, '');\r\n\r\n const trackingEvent = new CustomEvent('trackMobiusForm', { detail: { category: 'mobius-form', action: 'submit', label: label } });\r\n document.dispatchEvent(trackingEvent);\r\n\r\n // Validate form\r\n if (!(wrapper as any).smkValidate())\r\n return this.helperFunc.showOneAlert(wrapper, 'msgIncomplete');\r\n\r\n // Do Recaptcha test, show alert & fail if required and not complete\r\n const recap = this.recaptcha.check(wrapper);\r\n if (!recap)\r\n return this.helperFunc.showOneAlert(wrapper, 'msgRecap');\r\n\r\n const mailchimp = wrapper.find('.mobius-wrapper').hasClass('mobius-mailchimp');\r\n\r\n // get data \r\n // alternative example with manual build, but we prefer automatic\r\n // let data;\r\n // data = this.collectFieldsManual.collect(wrapper);\r\n this.collectFieldsAutomatic.collect(wrapper).then((data: any) => {\r\n const ws = wrapper.find('.mobius-wrapper').data('webservice'); // should be \"Form/ProcessForm\" or a custom override\r\n const redirectUrl = wrapper.find('.mobius-wrapper').data('redirect');\r\n data.Recaptcha = recap;\r\n data.MailChimp = mailchimp;\r\n\r\n // submission\r\n this.helperFunc.disableInputs(wrapper, true);\r\n this.helperFunc.showOneAlert(wrapper, 'msgSending'); // show \"sending...\"\r\n\r\n sxc.webApi.post(ws, {}, data, true)\r\n .success(() => {\r\n if (redirectUrl != \"\") {\r\n console.log(redirectUrl)\r\n window.location.href = redirectUrl;\r\n } else {\r\n const msg = mailchimp ? 'msgNewsletterSuccess' : 'msgOk';\r\n this.helperFunc.showOneAlert(wrapper, msg);\r\n\r\n const trackingEvent = new CustomEvent('trackMobiusForm', { detail: { category: 'mobius-form', action: 'success', label: label } });\r\n document.dispatchEvent(trackingEvent);\r\n }\r\n })\r\n .error(() => {\r\n const msg = mailchimp ? 'msgNewsletterFailed' : 'msgError';\r\n this.helperFunc.showOneAlert(wrapper, msg);\r\n this.helperFunc.disableInputs(wrapper, false);\r\n\r\n const trackingEvent = new CustomEvent('trackMobiusForm', { detail: { category: 'mobius-form', action: 'error', label: label } });\r\n document.dispatchEvent(trackingEvent);\r\n });\r\n });\r\n }\r\n}","/*\r\n This is an example of collecting the fields manually (instead of automatically). \r\n You would modify this file list all the fields you want, which allows you to use\r\n a different naming schema than the default. \r\n This is an advanced use case, and included so you could do this, but you usually won't want to.\r\n*/\r\nexport class CollectFieldsManual {\r\n // automatically build the send-object with all properties, \r\n // based on all form-fields which have a item-property=\"\"\r\n collect(wrapper: JQuery) {\r\n const data: any = {\r\n Subject: wrapper.find('#Subject'),\r\n Message: wrapper.find('#Message'),\r\n SenderName: wrapper.find('#Sendername'),\r\n SenderMail: wrapper.find('#Sendermail')\r\n };\r\n\r\n for (let prop in data) {\r\n if (data.hasOwnProperty(prop)) {\r\n data[prop] = data[prop].val();\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n}","export class CollectFieldsAutomatic {\r\n // automatically build the send-object with all properties, \r\n // based on all form-fields which have a item-property=\"\"\r\n collect(wrapper: JQuery) {\r\n let data: any = {\r\n Files: []\r\n };\r\n const fields = wrapper.find(':input').not('button');\r\n const promises = fields.map((i, field) => add(i, field));\r\n \r\n function add(i: number, element: any) {\r\n element = $(element);\r\n // get the property name from special-attribut, name OR id\r\n const propName = element.attr('name') || element.attr('id');\r\n\r\n if (!propName)\r\n return;\r\n\r\n // extract data from file fields\r\n if (element.attr('type') && element.attr('type').toLowerCase() == 'file') {\r\n const deferred = $.Deferred();\r\n const file = element.get(0).files[0];\r\n if (!file)\r\n return;\r\n\r\n const reader = new FileReader();\r\n\r\n reader.addEventListener('load', function () {\r\n data.Files.push({\r\n Encoded: reader.result,\r\n Name: file.name,\r\n Field: propName\r\n });\r\n deferred.resolve();\r\n }, false);\r\n reader.readAsDataURL(file);\r\n\r\n return deferred.promise();\r\n\r\n } else if (element.attr('type') && element.attr('type').toLowerCase() == 'radio') { // For radio fields get checked values\r\n if (element.is(':checked')) {\r\n data[propName] = element.val();\r\n }\r\n }else if (element.attr('type') && element.attr('type').toLowerCase() == 'checkbox') { // For radio fields get checked values\r\n const checkValue = element.is(':checked') ? \"True\" : \"False\";\r\n data[propName] = checkValue;\r\n } else { // For all standard fields, set value directly\r\n data[propName] = element.val();\r\n }\r\n }\r\n\r\n return $.when.apply($, promises).then(() => {\r\n return data;\r\n });\r\n }\r\n}","declare let grecaptcha: any;\r\n\r\nimport { UiActions } from './uiActions';\r\n\r\nexport class Recaptcha {\r\n helperFunc = new UiActions();\r\n\r\n c = {\r\n recapId: \"recapId\",\r\n clsRecap: \"g-recaptcha\"\r\n };\r\n\r\n constructor() { }\r\n\r\n /*\r\n Initialize Recaptcha and create a Recapcha Checkbox below the Formfields \r\n */\r\n init(wrapper: JQuery) {\r\n const recap = wrapper.find(this.c.clsRecap);\r\n\r\n if(!isNaN(wrapper.data(this.c.recapId))) {\r\n return;\r\n }\r\n\r\n const id = grecaptcha.render(recap, {\r\n 'sitekey' : recap.data(\"sitekey\"),\r\n 'size' : 'normal'\r\n });\r\n\r\n wrapper.data(this.c.recapId, id); // remember for later use \r\n }\r\n\r\n\r\n \r\n /* \r\n Checks if a recaptcha is implemented in the current Form\r\n */\r\n check(wrapper: JQuery) {\r\n const recap = wrapper.find(\".\" + this.c.clsRecap);\r\n // if no recaptcha found, probably ok\r\n if(recap.length === 0) {\r\n return true;\r\n }\r\n\r\n // if many found, probably not ok\r\n if(recap.length !== 1) {\r\n throw \"recaptcha not found\";\r\n }\r\n\r\n // return google response for the recap\r\n const res = grecaptcha.getResponse(); // null if failed, something cryptic if ok\r\n\r\n return res || false; \r\n }\r\n}","/* =============================================================\n * bootstrap-autocomplete.js v2.3.4\n * https://github.com/xcash/bootstrap-autocomplete\n * =============================================================\n * Forked from bootstrap3-typeahead.js v3.1.0\n * https://github.com/bassjobsen/Bootstrap-3-Typeahead\n * =============================================================\n * Original written by @mdo and @fat\n * =============================================================\n * Copyright 2018-2020 Paolo Casciello @xcash666 and contributors\n *\n * Licensed under the MIT License (the 'License');\n * you may not use this file except in compliance with the License.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ============================================================ */\nimport { AjaxResolver, BaseResolver } from './resolvers';\n// import { DropdownV3 } from './dropdownV3';\nimport { DropdownV4 } from './dropdownV4';\n\n\nexport interface AutoCompleteSettings {\n resolver: string,\n resolverSettings: any,\n minLength: number,\n valueKey: string,\n formatResult: (item: any) => {},\n autoSelect: boolean,\n noResultsText: string,\n bootstrapVersion: string,\n preventEnter: boolean,\n events: {\n typed: (newValue: string, el: JQuery) => string,\n searchPre: (searchText: string, el: JQuery) => string,\n search: (searchText: string, cbk: (results: any) => void, el: JQuery) => void,\n searchPost: (results: any, el: JQuery) => any,\n select: () => void,\n focus: () => void,\n }\n}\n\nexport class AutoComplete {\n public static NAME: string = 'autoComplete';\n\n private _el: Element;\n private _$el: JQuery;\n private _dd: DropdownV4;\n private _searchText: string;\n private _selectedItem: any = null;\n private _defaultValue: any = null;\n private _defaultText: string = null;\n private _isSelectElement: boolean = false;\n private _selectHiddenField: JQuery;\n\n private _settings: AutoCompleteSettings = {\n resolver: 'ajax',\n resolverSettings: {},\n minLength: 3,\n valueKey: 'value',\n formatResult: this.defaultFormatResult,\n autoSelect: true,\n noResultsText: 'No results',\n bootstrapVersion: 'auto',\n preventEnter: false,\n events: {\n typed: null,\n searchPre: null,\n search: null,\n searchPost: null,\n select: null,\n focus: null,\n }\n }\n\n private resolver: BaseResolver;\n\n constructor(element: HTMLElement, options?: {}) {\n this._el = element;\n this._$el = $(this._el) as JQuery;\n\n // element type\n if (this._$el.is('select')) {\n this._isSelectElement = true;\n }\n // inline data attributes\n this.manageInlineDataAttributes();\n // constructor options\n if (typeof options === 'object') {\n this._settings = $.extend(true, {}, this.getSettings(), options) as AutoCompleteSettings;\n }\n if (this._isSelectElement) {\n this.convertSelectToText();\n }\n\n // console.log('initializing', this._settings);\n\n this.init();\n }\n\n private manageInlineDataAttributes() {\n // updates settings with data-* attributes\n const s = this.getSettings();\n if (this._$el.data('url')) {\n s.resolverSettings.url = this._$el.data('url');\n }\n if (this._$el.data('default-value')) {\n this._defaultValue = this._$el.data('default-value');\n }\n if (this._$el.data('default-text')) {\n this._defaultText = this._$el.data('default-text');\n }\n if (this._$el.data('noresults-text') !== undefined) {\n s.noResultsText = this._$el.data('noresults-text');\n }\n }\n\n private getSettings(): AutoCompleteSettings {\n return this._settings;\n }\n\n private getBootstrapVersion(): number[] {\n let versionArray: number[];\n if (this._settings.bootstrapVersion === 'auto') {\n // @ts-ignore\n const versionString = $.fn.button.Constructor.VERSION; // 2sic modified\n versionArray = versionString.split('.').map(parseInt);\n } else if (this._settings.bootstrapVersion === '4') {\n versionArray = [4];\n } else if (this._settings.bootstrapVersion === '3') {\n versionArray = [3];\n } else {\n // tslint:disable-next-line: no-console\n console.error(`INVALID value for \\'bootstrapVersion\\' settings property: ${this._settings.bootstrapVersion} defaulting to 4`);\n versionArray = [4];\n }\n return versionArray;\n }\n\n private convertSelectToText() {\n // create hidden field\n\n const hidField: JQuery = $('');\n hidField.attr('type', 'hidden');\n hidField.attr('name', this._$el.attr('name'));\n if (this._defaultValue) {\n hidField.val(this._defaultValue);\n }\n this._selectHiddenField = hidField;\n\n hidField.insertAfter(this._$el);\n\n // create search input element\n const searchField: JQuery = $('');\n // copy all attributes\n searchField.attr('type', 'search');\n searchField.attr('name', this._$el.attr('name') + '_text');\n searchField.attr('id', this._$el.attr('id'));\n searchField.attr('disabled', this._$el.attr('disabled'));\n searchField.attr('placeholder', this._$el.attr('placeholder'));\n searchField.attr('autocomplete', 'off');\n searchField.addClass(this._$el.attr('class'));\n if (this._defaultText) {\n searchField.val(this._defaultText);\n }\n\n const requiredAttribute: string = this._$el.attr('required');\n if (requiredAttribute) {\n searchField.attr('required', requiredAttribute);\n }\n\n // attach class\n searchField.data(AutoComplete.NAME, this);\n\n // replace original with searchField\n this._$el.replaceWith(searchField);\n this._$el = searchField;\n this._el = searchField.get(0);\n }\n\n private init(): void {\n // bind default events\n this.bindDefaultEventListeners();\n // RESOLVER\n if (this._settings.resolver === 'ajax') {\n // configure default resolver\n this.resolver = new AjaxResolver(this._settings.resolverSettings);\n }\n // Dropdown\n if (this.getBootstrapVersion()[0] === 4) {\n // v4\n this._dd = new DropdownV4(this._$el, this._settings.formatResult,\n this._settings.autoSelect, this._settings.noResultsText\n );\n } else {\n // this._dd = new DropdownV3(this._$el, this._settings.formatResult,\n // this._settings.autoSelect, this._settings.noResultsText\n // );\n }\n }\n\n private bindDefaultEventListeners(): void {\n this._$el.on('keydown', (evt: JQueryEventObject) => {\n // console.log('keydown', evt.which, evt);\n switch (evt.which) {\n case 9: // TAB\n // if (this._settings.autoSelect) {\n // // if autoSelect enabled selects on blur the currently selected item\n // this._dd.selectFocusItem();\n // }\n if (this._dd.isItemFocused) {\n this._dd.selectFocusItem();\n } else if (!this._selectedItem) {\n // if we haven't selected an item (thus firing the corresponding event) we fire the free value\n // related to issue #71\n if (this._$el.val() !== '') {\n this._$el.trigger('autocomplete.freevalue', this._$el.val());\n }\n }\n this._dd.hide();\n break;\n case 13: // ENTER\n if (this._dd.isItemFocused) {\n this._dd.selectFocusItem();\n } else if (!this._selectedItem) {\n if (this._$el.val() !== '') {\n this._$el.trigger('autocomplete.freevalue', this._$el.val());\n }\n }\n this._dd.hide();\n if (this._settings.preventEnter) {\n // console.log('preventDefault');\n evt.preventDefault();\n }\n break;\n case 40:\n // arrow DOWN (here for usability - issue #80)\n this._dd.focusNextItem();\n break;\n case 38: // up arrow (here for usability - issue #80)\n this._dd.focusPreviousItem();\n break;\n }\n });\n\n this._$el.on('keyup', (evt: JQueryEventObject) => {\n // console.log('keyup', evt.which, evt);\n // check key\n switch (evt.which) {\n case 16: // shift\n case 17: // ctrl\n case 18: // alt\n case 39: // right\n case 37: // left\n case 36: // home\n case 35: // end\n break;\n case 13:\n // ENTER\n this._dd.hide();\n break;\n case 27:\n // ESC\n this._dd.hide();\n break;\n case 40:\n // arrow DOWN\n // this._dd.focusNextItem();\n break;\n case 38: // up arrow\n // this._dd.focusPreviousItem();\n break;\n default:\n // reset selectedItem as we modified input value (related to issue #71)\n this._selectedItem = null;\n const newValue = this._$el.val() as string;\n this.handlerTyped(newValue);\n }\n\n });\n\n this._$el.on('blur', (evt: JQueryEventObject) => {\n // console.log(evt);\n if (!this._dd.isMouseOver && this._dd.isDdMouseOver && this._dd.isShown()) {\n // Firefox Workaround\n setTimeout(() => { this._$el.focus(); });\n // Other browsers\n this._$el.focus();\n } else if (!this._dd.isMouseOver) {\n if (this._isSelectElement) {\n // if it's a select element\n if (this._dd.isItemFocused) {\n this._dd.selectFocusItem();\n } else if ((this._selectedItem !== null) && (this._$el.val() !== '')) {\n // reselect it\n this._$el.trigger('autocomplete.select', this._selectedItem);\n } else if ((this._$el.val() !== '') && (this._defaultValue !== null)) {\n // select Default\n this._$el.val(this._defaultText);\n this._selectHiddenField.val(this._defaultValue);\n this._selectedItem = null;\n this._$el.trigger('autocomplete.select', this._selectedItem);\n } else {\n // empty the values\n this._$el.val('');\n this._selectHiddenField.val('');\n this._selectedItem = null;\n this._$el.trigger('autocomplete.select', this._selectedItem);\n }\n } else {\n // It's a text element, we accept custom value.\n // Developers may subscribe to `autocomplete.freevalue` to get notified of this\n if (this._selectedItem === null) {\n this._$el.trigger('autocomplete.freevalue', this._$el.val());\n }\n }\n\n this._dd.hide();\n }\n });\n\n // selected event\n // @ts-ignore - Ignoring TS type checking\n this._$el.on('autocomplete.select', (evt: JQueryEventObject, item: any) => {\n this._selectedItem = item;\n this.itemSelectedDefaultHandler(item);\n });\n\n // Paste event\n // The event occurs before the value is pasted. safe behaviour should be triggering `keyup`\n this._$el.on('paste', (evt: JQueryEventObject) => {\n setTimeout(() => {\n this._$el.trigger('keyup', evt);\n }, 0)\n });\n\n }\n\n private handlerTyped(newValue: string): void {\n // field value changed\n\n // custom handler may change newValue\n if (this._settings.events.typed !== null) {\n newValue = this._settings.events.typed(newValue, this._$el);\n if (!newValue) {\n return;\n }\n }\n\n // if value >= minLength, start autocomplete\n if (newValue.length >= this._settings.minLength) {\n this._searchText = newValue;\n this.handlerPreSearch();\n } else {\n this._dd.hide();\n }\n }\n\n private handlerPreSearch(): void {\n // do nothing, start search\n\n // custom handler may change newValue\n if (this._settings.events.searchPre !== null) {\n const newValue: string = this._settings.events.searchPre(this._searchText, this._$el);\n if (!newValue)\n return;\n this._searchText = newValue;\n }\n\n this.handlerDoSearch();\n }\n\n private handlerDoSearch(): void {\n // custom handler may change newValue\n if (this._settings.events.search !== null) {\n this._settings.events.search(this._searchText, (results: any) => {\n this.postSearchCallback(results);\n }, this._$el);\n } else {\n // Default behaviour\n // search using current resolver\n if (this.resolver) {\n this.resolver.search(this._searchText, (results: any) => {\n this.postSearchCallback(results);\n });\n }\n }\n }\n\n private postSearchCallback(results: any): void {\n // console.log('callback called', results);\n\n // custom handler may change newValue\n if (this._settings.events.searchPost) {\n results = this._settings.events.searchPost(results, this._$el);\n if ((typeof results === 'boolean') && !results)\n return;\n }\n\n this.handlerStartShow(results);\n }\n\n private handlerStartShow(results: any[]): void {\n // console.log(\"defaultEventStartShow\", results);\n // for every result, draw it\n this._dd.updateItems(results, this._searchText);\n }\n\n protected itemSelectedDefaultHandler(item: any): void {\n // this is a coerce check (!=) to cover null or undefined\n if (item != null) {\n // default behaviour is set elment's .val()\n let itemFormatted: any = this._settings.formatResult(item);\n if (typeof itemFormatted === 'string') {\n itemFormatted = { text: itemFormatted }\n }\n this._$el.val(itemFormatted.text);\n // if the element is a select\n if (this._isSelectElement) {\n this._selectHiddenField.val(itemFormatted.value);\n }\n } else {\n // item is null -> clear the value\n this._$el.val('');\n if (this._isSelectElement) {\n this._selectHiddenField.val('');\n }\n }\n // save selected item\n this._selectedItem = item;\n // and hide\n this._dd.hide();\n }\n\n private defaultFormatResult(item: any): {} {\n if (typeof item === 'string') {\n return { text: item };\n } else if (item.text) {\n return item;\n } else {\n // return a toString of the item as last resort\n // console.error('No default formatter for item', item);\n return { text: item.toString() }\n }\n }\n\n public manageAPI(APICmd: any, params: any) {\n // manages public API\n if (APICmd === 'set') {\n this.itemSelectedDefaultHandler(params);\n } else if (APICmd === 'clear') {\n // shortcut\n this.itemSelectedDefaultHandler(null);\n } else if (APICmd === 'show') {\n // shortcut\n this._$el.trigger('keyup');\n } else if (APICmd === 'updateResolver') {\n // update resolver\n this.resolver = new AjaxResolver(params);\n }\n }\n\n}\n\n(($: JQueryStatic, window: any, document: any) => {\n // @ts-ignore\n $.fn[AutoComplete.NAME] = function (optionsOrAPI: any, optionalParams: any) {\n return this.each(function () {\n let pluginClass: AutoComplete;\n\n pluginClass = $(this).data(AutoComplete.NAME);\n\n if (!pluginClass) {\n pluginClass = new AutoComplete(this, optionsOrAPI);\n $(this).data(AutoComplete.NAME, pluginClass);\n }\n\n pluginClass.manageAPI(optionsOrAPI, optionalParams);\n });\n };\n})(jQuery, window, document);\n","export class BaseResolver {\n protected results: any[];\n\n protected _settings: any;\n\n constructor(options: any) {\n this._settings = $.extend(true, {}, this.getDefaults(), options);\n }\n\n protected getDefaults(): {} {\n return {};\n }\n\n protected getResults(limit?: number, start?: number, end?: number): any[] {\n\n return this.results;\n }\n\n public search(q: string, cbk: (results: any[]) => void): void {\n cbk(this.getResults());\n }\n\n}\n\n// tslint:disable-next-line: max-classes-per-file\nexport class AjaxResolver extends BaseResolver {\n protected jqXHR: JQueryXHR;\n protected requestTID: number;\n\n constructor(options: any) {\n super(options);\n\n // console.log('resolver settings', this._settings);\n }\n\n protected getDefaults(): {} {\n return {\n url: '',\n method: 'get',\n queryKey: 'q',\n extraData: {},\n timeout: undefined,\n requestThrottling: 500\n };\n }\n\n public search(q: string, cbk: (results: any[]) => void): void {\n if (this.jqXHR != null) {\n this.jqXHR.abort();\n }\n\n const data: {\n [key: string]: any\n } = {};\n data[this._settings.queryKey] = q;\n $.extend(data, this._settings.extraData);\n\n // request throttling\n if (this.requestTID) {\n window.clearTimeout(this.requestTID);\n }\n this.requestTID = window.setTimeout(() => {\n this.jqXHR = $.ajax(\n this._settings.url,\n {\n method: this._settings.method,\n data,\n timeout: this._settings.timeout\n }\n );\n\n this.jqXHR.done((result) => {\n cbk(result);\n });\n\n this.jqXHR.fail((err) => {\n // console.log(err);\n // this._settings.fail && this._settings.fail(err);\n\n if (this._settings && this._settings.fail)\n this._settings.fail(err);\n });\n\n this.jqXHR.always(() => {\n this.jqXHR = null;\n });\n\n }, this._settings.requestThrottling);\n }\n\n}","/*\n *\tDropdown class. Manages the dropdown drawing\n */\n\nexport class DropdownV4 {\n // For Bootstrap 4 new dropdown syntax\n protected _$el: JQuery;\n // dropdown element\n protected _dd: JQuery;\n protected initialized: boolean = false;\n protected shown: boolean = false;\n protected items: any[] = [];\n protected formatItem: (item: any) => any;\n protected searchText: string;\n protected autoSelect: boolean;\n protected mouseover: boolean;\n protected ddMouseover: boolean = false;\n protected noResultsText: string;\n\n constructor(e: JQuery, formatItemCbk: (item: any) => any, autoSelect: boolean, noResultsText: string) {\n this._$el = e;\n this.formatItem = formatItemCbk;\n this.autoSelect = autoSelect;\n this.noResultsText = noResultsText;\n\n // initialize it in lazy mode to deal with glitches like modals\n // this.init();\n }\n\n protected getElPos(): any {\n const pos: any = $.extend({}, this._$el.position(), {\n height: this._$el[0].offsetHeight\n });\n return pos;\n }\n protected init(): void {\n // Initialize dropdown\n const pos = this.getElPos();\n\n // create element\n this._dd = $('
');\n // add our class and basic dropdown-menu class\n this._dd.addClass('bootstrap-autocomplete dropdown-menu');\n\n this._dd.insertAfter(this._$el);\n this._dd.css({ top: pos.top + this._$el.outerHeight(), left: pos.left, width: this._$el.outerWidth() });\n\n // click event on items\n this._dd.on('click', '.dropdown-item', (evt: JQueryEventObject) => {\n // console.log('clicked', evt.currentTarget);\n // console.log($(evt.currentTarget));\n const item: any = $(evt.currentTarget).data('item');\n this.itemSelectedLaunchEvent(item);\n // stop default event on mouse click.\n evt.preventDefault();\n });\n\n this._dd.on('keyup', (evt: JQueryEventObject) => {\n if (this.shown) {\n switch (evt.which) {\n case 27:\n // ESC\n this.hide();\n this._$el.focus();\n break;\n\n }\n return false;\n }\n });\n\n this._dd.on('mouseenter', (evt: JQueryEventObject) => {\n this.ddMouseover = true;\n });\n\n this._dd.on('mouseleave', (evt: JQueryEventObject) => {\n this.ddMouseover = false;\n });\n\n this._dd.on('mouseenter', '.dropdown-item', (evt: JQueryEventObject) => {\n if (this.haveResults) {\n $(evt.currentTarget).closest('div').find('.dropdown-item.active').removeClass('active');\n $(evt.currentTarget).addClass('active');\n this.mouseover = true;\n }\n });\n\n this._dd.on('mouseleave', '.dropdown-item', (evt: JQueryEventObject) => {\n this.mouseover = false;\n });\n\n this.initialized = true;\n\n }\n\n private checkInitialized(): void {\n // Lazy init\n if (!this.initialized) {\n // if not already initialized\n this.init();\n }\n }\n\n get isMouseOver(): boolean {\n return this.mouseover;\n }\n\n get isDdMouseOver(): boolean {\n return this.ddMouseover;\n }\n\n get haveResults(): boolean {\n return (this.items.length > 0);\n }\n\n public focusNextItem(reversed?: boolean) {\n if (this.haveResults) {\n // get selected\n const currElem: JQuery = this._dd.find('.dropdown-item.active');\n let nextElem: JQuery = reversed ? currElem.prev() : currElem.next();\n\n if (nextElem.length === 0) {\n // first\n nextElem = reversed ? this._dd.find('.dropdown-item').last() : this._dd.find('.dropdown-item').first();\n }\n\n currElem.removeClass('active');\n nextElem.addClass('active');\n }\n }\n\n public focusPreviousItem() {\n this.focusNextItem(true);\n }\n\n public selectFocusItem() {\n this._dd.find('.dropdown-item.active').trigger('click');\n }\n\n get isItemFocused(): boolean {\n if (this._dd && this.isShown() && (this._dd.find('.dropdown-item.active').length > 0)) {\n return true;\n }\n return false;\n }\n\n public show(): void {\n if (!this.shown) {\n const pos = this.getElPos();\n // this._dd.css({ top: pos.top + this._$el.outerHeight(), left: pos.left, width: this._$el.outerWidth() });\n this._dd.addClass('show');\n this.shown = true;\n this._$el.trigger('autocomplete.dd.shown');\n }\n }\n\n public isShown(): boolean {\n return this.shown;\n }\n\n public hide(): void {\n if (this.shown) {\n this._dd.removeClass('show');\n this.shown = false;\n this._$el.trigger('autocomplete.dd.hidden');\n }\n }\n\n public updateItems(items: any[], searchText: string) {\n // console.log('updateItems', items);\n this.items = items;\n this.searchText = searchText;\n this.refreshItemList();\n }\n\n private showMatchedText(text: string, qry: string): string {\n const startIndex: number = text.toLowerCase().indexOf(qry.toLowerCase());\n if (startIndex > -1) {\n const endIndex: number = startIndex + qry.length;\n\n return text.slice(0, startIndex) + ''\n + text.slice(startIndex, endIndex) + ''\n + text.slice(endIndex);\n }\n return text;\n }\n\n protected refreshItemList() {\n this.checkInitialized();\n this._dd.empty();\n const liList: JQuery[] = [];\n if (this.items.length > 0) {\n this.items.forEach(item => {\n let itemFormatted: any = this.formatItem(item);\n if (typeof itemFormatted === 'string') {\n itemFormatted = { text: itemFormatted }\n }\n let itemText: string;\n let itemHtml: any;\n\n itemText = this.showMatchedText(itemFormatted.text, this.searchText);\n if (itemFormatted.html !== undefined) {\n itemHtml = itemFormatted.html;\n } else {\n itemHtml = itemText;\n }\n\n const disabledItem = itemFormatted.disabled;\n\n const li = $('');\n li.addClass('dropdown-item')\n .css({ 'overflow': 'hidden', 'text-overflow': 'ellipsis' })\n .html(itemHtml)\n .data('item', item);\n\n if (disabledItem) {\n li.addClass('disabled');\n }\n liList.push(li);\n });\n this._dd.append(liList);\n this.show();\n } else {\n // No results\n if (this.noResultsText === '') {\n // hide the dropdown\n this.hide();\n } else {\n // show no results message\n const li = $('');\n li.addClass('dropdown-item disabled')\n .html(this.noResultsText);\n\n liList.push(li);\n this._dd.append(liList);\n this.show();\n }\n }\n }\n\n protected itemSelectedLaunchEvent(item: any): void {\n // launch selected event\n // console.log('itemSelectedLaunchEvent', item);\n this._$el.trigger('autocomplete.select', item)\n }\n\n}\n"],"sourceRoot":""}